const { exec } = require('child_process');

// 根据操作系统执行不同的命令
const isWin = process.platform === 'win32';
const command = isWin
  ? `netstat -ano | findstr :5173`
  : `lsof -i :5173`;

exec(command, (error, stdout, stderr) => {
  if (error) {
    console.error('查找进程失败:', error);
    return;
  }

  // 解析输出获取 PID
  let pid;
  if (isWin) {
    // Windows 下解析最后一列的 PID
    const match = stdout.match(/\s+(\d+)\s*$/m);
    if (match) {
      pid = match[1];
    }
  } else {
    // Unix 系统下解析第二列的 PID
    const match = stdout.match(/\S+\s+(\d+)/);
    if (match) {
      pid = match[1];
    }
  }

  if (!pid) {
    console.log('没有找到占用 5173 端口的进程');
    return;
  }

  // 杀死进程
  const killCommand = isWin ? `taskkill /F /PID ${pid}` : `kill -9 ${pid}`;
  exec(killCommand, (error, stdout, stderr) => {
    if (error) {
      console.error('杀死进程失败:', error);
      return;
    }
    console.log(`成功杀死进程 PID: ${pid}`);
  });
});